// var a = 10;
// var a = 20;
// console.log(a);

// console.log(b);
// var b = 10;
// 1 let声明的变量不允许重复声明
// let a = 10;
// let a = 20;
// 2 let声明的变量 不会声明到window上 
  /* let num = 5;
  console.log(window.num); // undefined */
  // 3 let声明的变量具有块级作用域
  {
      let num1 = 5; // 只能在当前大括号内部使用
  }
  //console.log(num1); 报错
  for(let i=1; i<3; i++) {
      console.log(i);
  }
  //console.log(i);
  // 4  let声明的变量不会有声明提升
  console.log(b);  // b is not defined
  let b = 20;

  let a = 6;
  if (a>5) {
      console.log(a);
      let a = 8;
  }
 
   // 应用
  for(let i=0; i<3; i++) {
      setTimeout(function() {
          console.log(i);
      },10);
  }

  // const定义常量 不能重新赋值 可以修改引用类型的值
  const PI = 3.14;
  PI = 3.15; // 报错 不允许修改常量
  const arr = [1,2,3];
  arr.push(4);
  console.log(arr);
  const obj = {
      name: "along",
      age: "31"
  }
  obj = {
    name: "along",
    age: "31"
  }
  obj.age = 32;